-------------------------------------------------------------------------------
--- Testing BadHash "Very simple XOR shift"

[[[ Sanity Tests ]]]

Verification value 0xAB432E23 : PASS
Running sanity check 1    ..........PASS
Running AppendedZeroesTest..........PASS

[[[ Speed Tests ]]]

Bulk speed test - 262144-byte keys
Alignment  7 -  0.251 bytes/cycle -  718.22 MiB/sec @ 3 ghz
Alignment  6 -  0.314 bytes/cycle -  896.94 MiB/sec @ 3 ghz
Alignment  5 -  0.313 bytes/cycle -  896.92 MiB/sec @ 3 ghz
Alignment  4 -  0.314 bytes/cycle -  896.98 MiB/sec @ 3 ghz
Alignment  3 -  0.306 bytes/cycle -  876.37 MiB/sec @ 3 ghz
Alignment  2 -  0.307 bytes/cycle -  876.91 MiB/sec @ 3 ghz
Alignment  1 -  0.307 bytes/cycle -  876.99 MiB/sec @ 3 ghz
Alignment  0 -  0.314 bytes/cycle -  897.03 MiB/sec @ 3 ghz
Average      -  0.303 bytes/cycle -  867.05 MiB/sec @ 3 ghz

Small key speed test -    1-byte keys -    12.53 cycles/hash
Small key speed test -    2-byte keys -    12.00 cycles/hash
Small key speed test -    3-byte keys -    16.95 cycles/hash
Small key speed test -    4-byte keys -    19.00 cycles/hash
Small key speed test -    5-byte keys -    23.00 cycles/hash
Small key speed test -    6-byte keys -    25.00 cycles/hash
Small key speed test -    7-byte keys -    29.00 cycles/hash
Small key speed test -    8-byte keys -    31.36 cycles/hash
Small key speed test -    9-byte keys -    46.63 cycles/hash
Small key speed test -   10-byte keys -    48.08 cycles/hash
Small key speed test -   11-byte keys -    42.00 cycles/hash
Small key speed test -   12-byte keys -    44.00 cycles/hash
Small key speed test -   13-byte keys -    59.83 cycles/hash
Small key speed test -   14-byte keys -    62.42 cycles/hash
Small key speed test -   15-byte keys -    55.00 cycles/hash
Small key speed test -   16-byte keys -    57.00 cycles/hash
Small key speed test -   17-byte keys -    61.00 cycles/hash
Small key speed test -   18-byte keys -    63.00 cycles/hash
Small key speed test -   19-byte keys -    82.99 cycles/hash
Small key speed test -   20-byte keys -    69.99 cycles/hash
Small key speed test -   21-byte keys -    73.96 cycles/hash
Small key speed test -   22-byte keys -    76.00 cycles/hash
Small key speed test -   23-byte keys -    80.00 cycles/hash
Small key speed test -   24-byte keys -    82.00 cycles/hash
Small key speed test -   25-byte keys -    86.37 cycles/hash
Small key speed test -   26-byte keys -    88.85 cycles/hash
Small key speed test -   27-byte keys -    97.80 cycles/hash
Small key speed test -   28-byte keys -   120.10 cycles/hash
Small key speed test -   29-byte keys -   125.52 cycles/hash
Small key speed test -   30-byte keys -   101.00 cycles/hash
Small key speed test -   31-byte keys -   132.68 cycles/hash
Average                                    62.098 cycles/hash

[[[ Differential Tests ]]]

Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 32 bit hashes.
1000 reps, 8303632000 total tests, expecting 1.93 random collisions..........
54000 total collisions, of which 0 single collisions were ignored !!!!! 

Testing 11017632 up-to-4-bit differentials in 128-bit keys -> 32 bit hashes.
1000 reps, 11017632000 total tests, expecting 2.57 random collisions..........
87000 total collisions, of which 0 single collisions were ignored !!!!! 

Testing 2796416 up-to-3-bit differentials in 256-bit keys -> 32 bit hashes.
1000 reps, 2796416000 total tests, expecting 0.65 random collisions..........
93000 total collisions, of which 0 single collisions were ignored !!!!! 

*********FAIL*********

[[[ Avalanche Tests ]]]

Testing  32-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  40-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  48-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  56-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  64-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  72-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  80-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  88-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing  96-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing 104-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing 112-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing 120-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing 128-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing 136-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing 144-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
Testing 152-bit keys ->  32-bit hashes,   300000 reps.......... worst bias is 100.000000% !!!!! 
*********FAIL*********

[[[ Keyset 'Cyclic' Tests ]]]

Keyset 'Cyclic' - 8 cycles of 4 bytes - 10000000 keys
Testing collisions   - Expected 11641.53, actual 4153959.00 (356.82x) !!!!! 
Testing distribution - Worst bias is the  19-bit window at bit   6 - 49.998% !!!!! 

Keyset 'Cyclic' - 8 cycles of 5 bytes - 10000000 keys
Testing collisions   - Expected 11641.53, actual 184298.00 (15.83x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  28 - 0.028%

Keyset 'Cyclic' - 8 cycles of 6 bytes - 10000000 keys
Testing collisions   - Expected 11641.53, actual 11757.00 ( 1.01x)
Testing distribution - Worst bias is the  20-bit window at bit  18 - 0.017%

Keyset 'Cyclic' - 8 cycles of 7 bytes - 10000000 keys
Testing collisions   - Expected 11641.53, actual 92363.00 ( 7.93x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  20 - 0.049%

Keyset 'Cyclic' - 8 cycles of 8 bytes - 10000000 keys
Testing collisions   - Expected 11641.53, actual 11589.00 ( 1.00x)
Testing distribution - Worst bias is the  20-bit window at bit   6 - 0.035%

*********FAIL*********

[[[ Keyset 'TwoBytes' Tests ]]]

Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions   - Expected    49.57, actual 443969.00 (8956.17x) !!!!! 
Testing distribution - Worst bias is the  16-bit window at bit  16 - 99.992% !!!!! 

Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
Testing collisions   - Expected  3484.56, actual 4123713.00 (1183.43x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  12 - 99.978% !!!!! 

Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
Testing collisions   - Expected 40347.77, actual 15147191.00 (375.42x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  12 - 99.900% !!!!! 

Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
Testing collisions   - Expected 227963.15, actual 37678666.00 (165.28x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  12 - 99.705% !!!!! 

Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
Testing collisions   - Expected 871784.70, actual 75882075.00 (87.04x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  12 - 99.317% !!!!! 

*********FAIL*********

[[[ Keyset 'Sparse' Tests ]]]

Keyset 'Sparse' - 32-bit keys with up to 6 bits set - 1149017 keys
Testing collisions   - Expected   153.70, actual 764101.00 (4971.51x) !!!!! 
Testing distribution - Worst bias is the  17-bit window at bit  15 - 99.972% !!!!! 

Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
Testing collisions   - Expected  2461.72, actual 2894388.00 (1175.76x) !!!!! 
Testing distribution - Worst bias is the  19-bit window at bit  13 - 99.904% !!!!! 

Keyset 'Sparse' - 48-bit keys with up to 5 bits set - 1925357 keys
Testing collisions   - Expected   431.55, actual 867093.00 (2009.25x) !!!!! 
Testing distribution - Worst bias is the  18-bit window at bit  14 - 99.724% !!!!! 

Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions   - Expected  2069.66, actual 1755381.00 (848.15x) !!!!! 
Testing distribution - Worst bias is the  19-bit window at bit  13 - 99.397% !!!!! 

Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
Testing collisions   - Expected  8026.87, actual 3203686.00 (399.12x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  12 - 98.603% !!!!! 

Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions   - Expected  1401.34, actual 655707.00 (467.91x) !!!!! 
Testing distribution - Worst bias is the  19-bit window at bit  13 - 95.182% !!!!! 

Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions   - Expected   910.36, actual 116095.00 (127.53x) !!!!! 
Testing distribution - Worst bias is the  19-bit window at bit  13 - 64.452% !!!!! 

Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions   - Expected   512.50, actual  4209.00 ( 8.21x) !!!!! 
Testing distribution - Worst bias is the  18-bit window at bit  14 - 5.619% !!!!! 

*********FAIL*********

[[[ Keyset 'Combination Lowbits' Tests ]]]

Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions   - Expected 42799.01, actual 2396744.00 (56.00x) !!!!! 
Testing distribution - Worst bias is the  19-bit window at bit   3 - 49.321% !!!!! 

*********FAIL*********

[[[ Keyset 'Combination Highbits' Tests ]]]

Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions   - Expected 42799.01, actual 2396744.00 (56.00x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  14 - 6.473% !!!!! 

*********FAIL*********

[[[ Keyset 'Combination 0x8000000' Tests ]]]

Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions   - Expected   512.00, actual 1048574.00 (2048.00x) !!!!! 
Testing distribution - Worst bias is the  18-bit window at bit  12 - 74.704% !!!!! 

*********FAIL*********

[[[ Keyset 'Combination 0x0000001' Tests ]]]

Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions   - Expected   512.00, actual 1048574.00 (2048.00x) !!!!! 
Testing distribution - Worst bias is the  18-bit window at bit  25 - 74.323% !!!!! 

*********FAIL*********

[[[ Keyset 'Combination Hi-Lo' Tests ]]]

Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
Testing collisions   - Expected 17339.30, actual 817151.00 (47.13x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  14 - 30.435% !!!!! 

*********FAIL*********

[[[ Keyset 'Window' Tests ]]]

Keyset 'Windowed' -  64-bit key,  20-bit window - 64 tests, 1048576 keys per test
Window at   0 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at   1 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at   2 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at   3 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at   4 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at   5 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at   6 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at   7 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at   8 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at   9 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  10 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  11 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  12 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  13 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  14 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  15 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  16 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  17 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  18 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  19 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  20 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  21 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  22 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  23 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  24 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  25 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  26 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  27 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  28 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  29 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  30 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  31 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  32 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  33 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  34 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  35 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  36 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  37 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  38 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  39 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  40 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  41 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  42 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  43 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  44 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  45 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  46 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  47 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  48 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  49 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  50 - Testing collisions   - Expected   128.00, actual 524288.00 (4096.00x) !!!!! 
Window at  51 - Testing collisions   - Expected   128.00, actual     0.00 ( 0.00x)
Window at  52 - Testing collisions   - Expected   128.00, actual     0.00 ( 0.00x)
Window at  53 - Testing collisions   - Expected   128.00, actual     0.00 ( 0.00x)
Window at  54 - Testing collisions   - Expected   128.00, actual     0.00 ( 0.00x)
Window at  55 - Testing collisions   - Expected   128.00, actual     0.00 ( 0.00x)
Window at  56 - Testing collisions   - Expected   128.00, actual     0.00 ( 0.00x)
Window at  57 - Testing collisions   - Expected   128.00, actual     0.00 ( 0.00x)
Window at  58 - Testing collisions   - Expected   128.00, actual 524288.00 (4096.00x) !!!!! 
Window at  59 - Testing collisions   - Expected   128.00, actual 786432.00 (6144.01x) !!!!! 
Window at  60 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  61 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  62 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  63 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
Window at  64 - Testing collisions   - Expected   128.00, actual 917504.00 (7168.01x) !!!!! 
*********FAIL*********

[[[ Keyset 'Text' Tests ]]]

Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
Testing collisions   - Expected 25418.13, actual 13310656.00 (523.67x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit   7 - 76.260% !!!!! 

Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
Testing collisions   - Expected 25418.13, actual 13310656.00 (523.67x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit  12 - 99.959% !!!!! 

Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
Testing collisions   - Expected 25418.13, actual 13310656.00 (523.67x) !!!!! 
Testing distribution - Worst bias is the  20-bit window at bit   5 - 61.897% !!!!! 

*********FAIL*********

[[[ Keyset 'Zeroes' Tests ]]]

Keyset 'Zeroes' - 65536 keys
Testing collisions   - Expected     0.50, actual 65535.00 (131072.00x) !!!!! 
Testing distribution - Worst bias is the  13-bit window at bit   0 - 99.988% !!!!! 

*********FAIL*********

[[[ Keyset 'Seed' Tests ]]]

Keyset 'Seed' - 1000000 keys
Testing collisions   - Expected   116.42, actual     0.00 ( 0.00x)
Testing distribution - Worst bias is the  15-bit window at bit  19 - 49.181% !!!!! 



Input vcode 0x21a25ce3, Output vcode 0x95c2ce19, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 1769.050688 seconds
-------------------------------------------------------------------------------
